FileAlterationObserver এবং FileAlterationMonitor এর ব্যবহার

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) File Monitoring এবং File Alteration Listener |
187
187

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত অনেক শক্তিশালী ইউটিলিটি সরবরাহ করে। এর মধ্যে দুটি গুরুত্বপূর্ণ ক্লাস হল FileAlterationObserver এবং FileAlterationMonitor। এগুলি ফাইল সিস্টেম এর পরিবর্তন (যেমন ফাইল তৈরি, পরিবর্তন, ডিলিট) ট্র্যাক করার জন্য ব্যবহৃত হয়। এই ক্লাসগুলো ফাইল বা ডিরেক্টরির মধ্যে পরিবর্তন ঘটলে তাত্ক্ষণিকভাবে সাড়া দিতে সাহায্য করে।

১. FileAlterationObserver ক্লাস

FileAlterationObserver হল একটি ক্লাস যা নির্দিষ্ট ডিরেক্টরি এবং তার অধীনে থাকা ফাইলগুলির পরিবর্তন পর্যবেক্ষণ (monitor) করার জন্য ব্যবহৃত হয়। এটি একটি বা একাধিক ডিরেক্টরি পর্যবেক্ষণ করতে পারে এবং ফাইলের মধ্যে কোনো পরিবর্তন হলে তার উপর কার্যকরী কিছু অ্যাকশন নেয়।

FileAlterationObserver এর কাজ:

  • নির্দিষ্ট ডিরেক্টরি এবং তার সবার ফাইল সিস্টেম পরিবর্তন (যেমন ফাইল তৈরি, মডিফাই, ডিলিট) ট্র্যাক করে।
  • যখন ডিরেক্টরি বা ফাইলের অবস্থা পরিবর্তিত হয়, তখন এটি একটি ইভেন্ট পাঠায় যা আপনাকে পরিবর্তনের সাথে সাড়া দিতে সাহায্য করে।

উদাহরণ: FileAlterationObserver ব্যবহার করা

import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationEvent;

import java.io.File;

public class FileAlterationObserverExample {
    public static void main(String[] args) {
        // পর্যবেক্ষণ করার জন্য একটি ডিরেক্টরি নির্ধারণ
        File directoryToObserve = new File("path/to/directory");

        // FileAlterationObserver তৈরি করা
        FileAlterationObserver observer = new FileAlterationObserver(directoryToObserve);

        // পরিবর্তনগুলি শুনতে FileAlterationListener ব্যবহার করা
        observer.addListener(new FileAlterationListener() {
            @Override
            public void onDirectoryCreate(File directory) {
                System.out.println("ডিরেক্টরি তৈরি হয়েছে: " + directory.getName());
            }

            @Override
            public void onDirectoryChange(File directory) {
                System.out.println("ডিরেক্টরি পরিবর্তিত হয়েছে: " + directory.getName());
            }

            @Override
            public void onDirectoryDelete(File directory) {
                System.out.println("ডিরেক্টরি মুছে ফেলা হয়েছে: " + directory.getName());
            }

            @Override
            public void onFileCreate(File file) {
                System.out.println("ফাইল তৈরি হয়েছে: " + file.getName());
            }

            @Override
            public void onFileChange(File file) {
                System.out.println("ফাইল পরিবর্তিত হয়েছে: " + file.getName());
            }

            @Override
            public void onFileDelete(File file) {
                System.out.println("ফাইল মুছে ফেলা হয়েছে: " + file.getName());
            }
        });

        // Observer কে পর্যবেক্ষণের জন্য শুরু করা
        observer.checkAndNotify();
    }
}

এখানে:

  • FileAlterationObserver একটি ডিরেক্টরি পর্যবেক্ষণ করছে।
  • FileAlterationListener ক্লাসের মাধ্যমে বিভিন্ন ফাইল বা ডিরেক্টরি ইভেন্ট (যেমন তৈরি, পরিবর্তন, ডিলিট) ধরা হচ্ছে এবং সংশ্লিষ্ট কার্যক্রম প্রিন্ট করা হচ্ছে।

২. FileAlterationMonitor ক্লাস

FileAlterationMonitor হল একটি ক্লাস যা FileAlterationObserver ব্যবহার করে ফাইল সিস্টেমের পরিবর্তন মনিটর করে এবং সময়ের নির্দিষ্ট সীমার মধ্যে পর্যবেক্ষণ করার জন্য এটি ইভেন্ট গুলি ট্রিগার করে। এটি সিস্টেমের কার্যকারিতা উন্নত করতে ব্যবহৃত হয়, কারণ এটি periodic checking এর মাধ্যমে ফাইল সিস্টেম পরিবর্তনগুলি পর্যবেক্ষণ করে।

FileAlterationMonitor এর কাজ:

  • এটি FileAlterationObserver-কে নির্দিষ্ট সময় অন্তর checkAndNotify() মেথডের মাধ্যমে ফাইল সিস্টেমের পরিবর্তন দেখতে বলে।
  • এটি একটি থ্রেড সুরক্ষিত পর্যবেক্ষণ প্রদান করে, যাতে আপনার কোডটি নিরবচ্ছিন্নভাবে চলতে থাকে এবং পরিবর্তন সঠিকভাবে ট্র্যাক করতে পারে।

উদাহরণ: FileAlterationMonitor ব্যবহার করা

import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationEvent;
import org.apache.commons.io.monitor.FileAlterationMonitor;

import java.io.File;

public class FileAlterationMonitorExample {
    public static void main(String[] args) throws Exception {
        // পর্যবেক্ষণ করার জন্য একটি ডিরেক্টরি নির্ধারণ
        File directoryToObserve = new File("path/to/directory");

        // FileAlterationObserver তৈরি করা
        FileAlterationObserver observer = new FileAlterationObserver(directoryToObserve);

        // FileAlterationListener যোগ করা
        observer.addListener(new FileAlterationListener() {
            @Override
            public void onDirectoryCreate(File directory) {
                System.out.println("ডিরেক্টরি তৈরি হয়েছে: " + directory.getName());
            }

            @Override
            public void onDirectoryChange(File directory) {
                System.out.println("ডিরেক্টরি পরিবর্তিত হয়েছে: " + directory.getName());
            }

            @Override
            public void onDirectoryDelete(File directory) {
                System.out.println("ডিরেক্টরি মুছে ফেলা হয়েছে: " + directory.getName());
            }

            @Override
            public void onFileCreate(File file) {
                System.out.println("ফাইল তৈরি হয়েছে: " + file.getName());
            }

            @Override
            public void onFileChange(File file) {
                System.out.println("ফাইল পরিবর্তিত হয়েছে: " + file.getName());
            }

            @Override
            public void onFileDelete(File file) {
                System.out.println("ফাইল মুছে ফেলা হয়েছে: " + file.getName());
            }
        });

        // FileAlterationMonitor তৈরি করা, এখানে 10 সেকেন্ড পর পর পর্যবেক্ষণ করবে
        FileAlterationMonitor monitor = new FileAlterationMonitor(10000, observer);

        // Monitor চালু করা
        monitor.start();
        
        // কিছু সময় পর, পর্যবেক্ষণ বন্ধ করা (উদাহরণস্বরূপ 30 সেকেন্ড পরে)
        Thread.sleep(30000);
        monitor.stop();
    }
}

এখানে:

  • FileAlterationObserver এবং FileAlterationListener ব্যবহার করে ফাইল এবং ডিরেক্টরির পরিবর্তনগুলো ট্র্যাক করা হচ্ছে।
  • FileAlterationMonitor ব্যবহার করে প্রতি ১০ সেকেন্ড পর পর পর্যবেক্ষণ করা হচ্ছে এবং পরিবর্তন হলে তা দেখানো হচ্ছে।

আউটপুট:

ফাইল তৈরি হয়েছে: example.txt
ফাইল পরিবর্তিত হয়েছে: example.txt

৩. FileAlterationObserver এবং FileAlterationMonitor এর সুবিধা

  1. Real-time Monitoring: এই ক্লাসগুলো ফাইল সিস্টেমের পরিবর্তনগুলির জন্য real-time monitoring প্রদান করে, যা ফাইল সিস্টেমে তৈরি, পরিবর্তন বা মুছে ফেলা ইভেন্টগুলি সনাক্ত করতে সহায়ক।
  2. Periodic Checks: FileAlterationMonitor ক্লাসটি periodic checking ব্যবস্থার মাধ্যমে ডিরেক্টরি বা ফাইলের পরিবর্তন পর্যবেক্ষণ করতে সাহায্য করে।
  3. Thread-Safe Operation: এই ক্লাসগুলি থ্রেড সেফ এবং একাধিক থ্রেডে কাজ করতে সক্ষম, ফলে এটি মাল্টি-থ্রেডেড অ্যাপ্লিকেশনগুলোর জন্য কার্যকরী।
  4. Flexibility: আপনি যেকোনো ডিরেক্টরি এবং তার ভিতরের ফাইল বা সাবডিরেক্টরি পর্যবেক্ষণ করতে পারেন, এবং নির্দিষ্ট সময়ের মধ্যে তার পরিবর্তনগুলি ট্র্যাক করতে পারেন।

সারাংশ

FileAlterationObserver এবং FileAlterationMonitor ক্লাসগুলি Apache Commons IO লাইব্রেরির গুরুত্বপূর্ণ অংশ, যা ফাইল এবং ডিরেক্টরি সিস্টেমের মধ্যে real-time পরিবর্তন সনাক্ত করতে ব্যবহৃত হয়। FileAlterationObserver ক্লাসটি ফাইল সিস্টেমের পরিবর্তন পর্যবেক্ষণ করে, এবং FileAlterationMonitor ক্লাসটি নির্দিষ্ট সময় পর পর FileAlterationObserver কে checkAndNotify() মেথডের মাধ্যমে ফাইল সিস্টেমে পরিবর্তনগুলোর সনাক্তকরণ করতে সাহায্য করে। এটি ফাইল সিস্টেমের নিরাপত্তা, পরিবর্তন ট্র্যাকিং এবং অটোমেটেড ডেটা ম্যানেজমেন্ট ব্যবস্থার জন্য অত্যন্ত কার্যকরী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion